////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2017-2018 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// THIS IS AUTO-GENERATED CODE.  PLEASE DO NOT EDIT (File bug reports against tools).
///
/// Auto-generated by: ParameterParser V1.1.4
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @file  awbglobalelements.cpp
/// @brief Auto-generated Chromatix parameter file
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include "awbglobalelements.h"
#include "parametersetmanager.h"

AWBGLOBALELEMENTS_NAMESPACE_BEGIN


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load moduleIDType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadmoduleIDType(
    ParameterFileSymbolTableEntry* entry,
    moduleIDType* structure)
{
    BOOL result = TRUE;
    result = result && entry->ReadInt32(&structure->moduleID);
    result = result && entry->ReadInt32(&structure->subModuleID);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load triggerPointType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadtriggerPointType(
    ParameterFileSymbolTableEntry* entry,
    triggerPointType* structure)
{
    BOOL result = TRUE;
    result = result && entry->ReadFloat(&structure->start);
    result = result && entry->ReadFloat(&structure->end);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load awbRGBDataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadawbRGBDataType(
    ParameterFileSymbolTableEntry* entry,
    awbRGBDataType* structure)
{
    BOOL result = TRUE;
    result = result && entry->ReadFloat(&structure->red);
    result = result && entry->ReadFloat(&structure->green);
    result = result && entry->ReadFloat(&structure->blue);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load awbPointDataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadawbPointDataType(
    ParameterFileSymbolTableEntry* entry,
    awbPointDataType* structure)
{
    BOOL result = TRUE;
    result = result && entry->ReadFloat(&structure->rg);
    result = result && entry->ReadFloat(&structure->bg);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load awbZoneDataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadawbZoneDataType(
    ParameterFileSymbolTableEntry* entry,
    awbZoneDataType* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 3; i++)
    {
        result = result && LoadawbPointDataType(entry, &structure->vertex[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load awbFloatDataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadawbFloatDataType(
    ParameterFileSymbolTableEntry* entry,
    awbFloatDataType* structure)
{
    BOOL result = TRUE;
    result = result && entry->ReadFloat(&structure->data);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load awbTriggerDataRGBType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadawbTriggerDataRGBType(
    ParameterFileSymbolTableEntry* entry,
    awbTriggerDataRGBType* structure)
{
    BOOL result = TRUE;
    result = result && LoadtriggerPointType(entry, &structure->triggerPt);
    result = result && LoadawbRGBDataType(entry, &structure->triggerData);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load awbTriggerDataZoneType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadawbTriggerDataZoneType(
    ParameterFileSymbolTableEntry* entry,
    awbTriggerDataZoneType* structure)
{
    BOOL result = TRUE;
    result = result && LoadtriggerPointType(entry, &structure->triggerPt);
    result = result && LoadawbZoneDataType(entry, &structure->triggerData);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load awbTriggerDataPointType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadawbTriggerDataPointType(
    ParameterFileSymbolTableEntry* entry,
    awbTriggerDataPointType* structure)
{
    BOOL result = TRUE;
    result = result && LoadtriggerPointType(entry, &structure->triggerPt);
    result = result && LoadawbPointDataType(entry, &structure->triggerData);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load awbTriggerDataFloatType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadawbTriggerDataFloatType(
    ParameterFileSymbolTableEntry* entry,
    awbTriggerDataFloatType* structure)
{
    BOOL result = TRUE;
    result = result && LoadtriggerPointType(entry, &structure->triggerPt);
    result = result && LoadawbFloatDataType(entry, &structure->triggerData);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load awbZoneConfigType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadawbZoneConfigType(
    ParameterFileSymbolTableEntry* entry,
    awbZoneConfigType* structure)
{
    BOOL result = TRUE;

    // Reading structure->Description from the symbol table
    {
        UINT32 DescriptionCount = 0;
        result = result && entry->ReadUInt32(&DescriptionCount);
        ParameterFileSymbolTableEntry* pointerEntry1 = entry->Table->ReadPointerEntry(entry);
        result = result && pointerEntry1 != NULL;
        structure->Description = NULL;
        if (result)
        {
            pointerEntry1->ReadString(&structure->Description, DescriptionCount);
        }
    }
    result = result && entry->ReadInt32(&structure->groupID);
    structure->zoneType = (awbZoneType)entry->ReadEnum(&result);
    result = result && entry->ReadInt32(&structure->triggerLevel);
    for (UINT32 i = 0; result && i < 3; i++)
    {
        structure->triggerCtrlType[i] = (awbTriggerCtrlType)entry->ReadEnum(&result);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load awbZoneDefineType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadawbZoneDefineType(
    ParameterFileSymbolTableEntry* entry,
    awbZoneDefineType* structure)
{
    BOOL result = TRUE;
    result = result && LoadawbZoneConfigType(entry, &structure->zoneConfigData);
    result = result && LoadtriggerPointType(entry, &structure->triggerPt);

    // Reading structure->triggerData from the symbol table
    {
        result = result && entry->ReadUInt32(&structure->triggerDataCount);
        structure->triggerDataID = entry->ID;
        ParameterFileSymbolTableEntry* pointerEntry1 = entry->Table->ReadPointerEntry(entry);
        result = result && pointerEntry1 != NULL;
        if (result)
        {
            structure->triggerData   = PARAMETER_NEW awbTriggerDataZoneType[structure->triggerDataCount];
        }
        if (!result || structure->triggerData == NULL)
        {
            structure->triggerDataCount = 0;
        }
        for (UINT32 i = 0; result && i < structure->triggerDataCount; i++)
        {
            result = result && LoadawbTriggerDataZoneType(pointerEntry1, &structure->triggerData[i]);
        }
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load awbTriggerDataZoneLevel2Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadawbTriggerDataZoneLevel2Type(
    ParameterFileSymbolTableEntry* entry,
    awbTriggerDataZoneLevel2Type* structure)
{
    BOOL result = TRUE;
    result = result && LoadtriggerPointType(entry, &structure->triggerPt);

    // Reading structure->triggerData from the symbol table
    {
        result = result && entry->ReadUInt32(&structure->triggerDataCount);
        structure->triggerDataID = entry->ID;
        ParameterFileSymbolTableEntry* pointerEntry1 = entry->Table->ReadPointerEntry(entry);
        result = result && pointerEntry1 != NULL;
        if (result)
        {
            structure->triggerData   = PARAMETER_NEW awbTriggerDataZoneType[structure->triggerDataCount];
        }
        if (!result || structure->triggerData == NULL)
        {
            structure->triggerDataCount = 0;
        }
        for (UINT32 i = 0; result && i < structure->triggerDataCount; i++)
        {
            result = result && LoadawbTriggerDataZoneType(pointerEntry1, &structure->triggerData[i]);
        }
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load awbTriggerDataZoneLevel1Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadawbTriggerDataZoneLevel1Type(
    ParameterFileSymbolTableEntry* entry,
    awbTriggerDataZoneLevel1Type* structure)
{
    BOOL result = TRUE;
    result = result && LoadtriggerPointType(entry, &structure->triggerPt);

    // Reading structure->triggerData from the symbol table
    {
        result = result && entry->ReadUInt32(&structure->triggerDataCount);
        structure->triggerDataID = entry->ID;
        ParameterFileSymbolTableEntry* pointerEntry1 = entry->Table->ReadPointerEntry(entry);
        result = result && pointerEntry1 != NULL;
        if (result)
        {
            structure->triggerData   = PARAMETER_NEW awbTriggerDataZoneLevel2Type[structure->triggerDataCount];
        }
        if (!result || structure->triggerData == NULL)
        {
            structure->triggerDataCount = 0;
        }
        for (UINT32 i = 0; result && i < structure->triggerDataCount; i++)
        {
            result = result && LoadawbTriggerDataZoneLevel2Type(pointerEntry1, &structure->triggerData[i]);
        }
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load awbZoneMLCType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadawbZoneMLCType(
    ParameterFileSymbolTableEntry* entry,
    awbZoneMLCType* structure)
{
    BOOL result = TRUE;
    result = result && LoadawbZoneConfigType(entry, &structure->zoneConfigData);
    result = result && LoadtriggerPointType(entry, &structure->triggerPt);

    // Reading structure->triggerData from the symbol table
    {
        result = result && entry->ReadUInt32(&structure->triggerDataCount);
        structure->triggerDataID = entry->ID;
        ParameterFileSymbolTableEntry* pointerEntry1 = entry->Table->ReadPointerEntry(entry);
        result = result && pointerEntry1 != NULL;
        if (result)
        {
            structure->triggerData   = PARAMETER_NEW awbTriggerDataZoneLevel1Type[structure->triggerDataCount];
        }
        if (!result || structure->triggerData == NULL)
        {
            structure->triggerDataCount = 0;
        }
        for (UINT32 i = 0; result && i < structure->triggerDataCount; i++)
        {
            result = result && LoadawbTriggerDataZoneLevel1Type(pointerEntry1, &structure->triggerData[i]);
        }
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load awbSAConfidenceConfigType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadawbSAConfidenceConfigType(
    ParameterFileSymbolTableEntry* entry,
    awbSAConfidenceConfigType* structure)
{
    BOOL result = TRUE;
    result = result && entry->ReadFloat(&structure->attribute);
    for (UINT32 i = 0; result && i < 2; i++)
    {
        structure->triggerType[i] = (awbTriggerCtrlType)entry->ReadEnum(&result);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load awbSAConfidenceLevel2Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadawbSAConfidenceLevel2Type(
    ParameterFileSymbolTableEntry* entry,
    awbSAConfidenceLevel2Type* structure)
{
    BOOL result = TRUE;
    result = result && LoadtriggerPointType(entry, &structure->triggerPt);

    // Reading structure->triggerData from the symbol table
    {
        result = result && entry->ReadUInt32(&structure->triggerDataCount);
        structure->triggerDataID = entry->ID;
        ParameterFileSymbolTableEntry* pointerEntry1 = entry->Table->ReadPointerEntry(entry);
        result = result && pointerEntry1 != NULL;
        if (result)
        {
            structure->triggerData   = PARAMETER_NEW awbTriggerDataFloatType[structure->triggerDataCount];
        }
        if (!result || structure->triggerData == NULL)
        {
            structure->triggerDataCount = 0;
        }
        for (UINT32 i = 0; result && i < structure->triggerDataCount; i++)
        {
            result = result && LoadawbTriggerDataFloatType(pointerEntry1, &structure->triggerData[i]);
        }
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load awbSAConfidenceDataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadawbSAConfidenceDataType(
    ParameterFileSymbolTableEntry* entry,
    awbSAConfidenceDataType* structure)
{
    BOOL result = TRUE;
    result = result && LoadawbSAConfidenceConfigType(entry, &structure->commonData);
    result = result && LoadtriggerPointType(entry, &structure->triggerPt);

    // Reading structure->triggerData from the symbol table
    {
        result = result && entry->ReadUInt32(&structure->triggerDataCount);
        structure->triggerDataID = entry->ID;
        ParameterFileSymbolTableEntry* pointerEntry1 = entry->Table->ReadPointerEntry(entry);
        result = result && pointerEntry1 != NULL;
        if (result)
        {
            structure->triggerData   = PARAMETER_NEW awbSAConfidenceLevel2Type[structure->triggerDataCount];
        }
        if (!result || structure->triggerData == NULL)
        {
            structure->triggerDataCount = 0;
        }
        for (UINT32 i = 0; result && i < structure->triggerDataCount; i++)
        {
            result = result && LoadawbSAConfidenceLevel2Type(pointerEntry1, &structure->triggerData[i]);
        }
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load awbSATargetConfigType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadawbSATargetConfigType(
    ParameterFileSymbolTableEntry* entry,
    awbSATargetConfigType* structure)
{
    BOOL result = TRUE;
    structure->attribute = (awbSATargetCtrlType)entry->ReadEnum(&result);
    for (UINT32 i = 0; result && i < 2; i++)
    {
        structure->triggerType[i] = (awbTriggerCtrlType)entry->ReadEnum(&result);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load awbSATargetLevel2Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadawbSATargetLevel2Type(
    ParameterFileSymbolTableEntry* entry,
    awbSATargetLevel2Type* structure)
{
    BOOL result = TRUE;
    result = result && LoadtriggerPointType(entry, &structure->triggerPt);

    // Reading structure->triggerData from the symbol table
    {
        result = result && entry->ReadUInt32(&structure->triggerDataCount);
        structure->triggerDataID = entry->ID;
        ParameterFileSymbolTableEntry* pointerEntry1 = entry->Table->ReadPointerEntry(entry);
        result = result && pointerEntry1 != NULL;
        if (result)
        {
            structure->triggerData   = PARAMETER_NEW awbTriggerDataPointType[structure->triggerDataCount];
        }
        if (!result || structure->triggerData == NULL)
        {
            structure->triggerDataCount = 0;
        }
        for (UINT32 i = 0; result && i < structure->triggerDataCount; i++)
        {
            result = result && LoadawbTriggerDataPointType(pointerEntry1, &structure->triggerData[i]);
        }
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load awbSATargetDataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadawbSATargetDataType(
    ParameterFileSymbolTableEntry* entry,
    awbSATargetDataType* structure)
{
    BOOL result = TRUE;
    result = result && LoadawbSATargetConfigType(entry, &structure->commonData);
    result = result && LoadtriggerPointType(entry, &structure->triggerPt);

    // Reading structure->triggerData from the symbol table
    {
        result = result && entry->ReadUInt32(&structure->triggerDataCount);
        structure->triggerDataID = entry->ID;
        ParameterFileSymbolTableEntry* pointerEntry1 = entry->Table->ReadPointerEntry(entry);
        result = result && pointerEntry1 != NULL;
        if (result)
        {
            structure->triggerData   = PARAMETER_NEW awbSATargetLevel2Type[structure->triggerDataCount];
        }
        if (!result || structure->triggerData == NULL)
        {
            structure->triggerDataCount = 0;
        }
        for (UINT32 i = 0; result && i < structure->triggerDataCount; i++)
        {
            result = result && LoadawbSATargetLevel2Type(pointerEntry1, &structure->triggerData[i]);
        }
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load CbCrPointDataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadCbCrPointDataType(
    ParameterFileSymbolTableEntry* entry,
    CbCrPointDataType* structure)
{
    BOOL result = TRUE;
    result = result && entry->ReadFloat(&structure->Cb);
    result = result && entry->ReadFloat(&structure->Cr);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load CbCrTriggerDataPointType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadCbCrTriggerDataPointType(
    ParameterFileSymbolTableEntry* entry,
    CbCrTriggerDataPointType* structure)
{
    BOOL result = TRUE;
    result = result && LoadtriggerPointType(entry, &structure->triggerPt);
    result = result && LoadCbCrPointDataType(entry, &structure->triggerData);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load awbCbCrLevel2Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL awbglobalelementsClass::LoadawbCbCrLevel2Type(
    ParameterFileSymbolTableEntry* entry,
    awbCbCrLevel2Type* structure)
{
    BOOL result = TRUE;
    result = result && LoadtriggerPointType(entry, &structure->triggerPt);

    // Reading structure->triggerData from the symbol table
    {
        result = result && entry->ReadUInt32(&structure->triggerDataCount);
        structure->triggerDataID = entry->ID;
        ParameterFileSymbolTableEntry* pointerEntry1 = entry->Table->ReadPointerEntry(entry);
        result = result && pointerEntry1 != NULL;
        if (result)
        {
            structure->triggerData   = PARAMETER_NEW CbCrTriggerDataPointType[structure->triggerDataCount];
        }
        if (!result || structure->triggerData == NULL)
        {
            structure->triggerDataCount = 0;
        }
        for (UINT32 i = 0; result && i < structure->triggerDataCount; i++)
        {
            result = result && LoadCbCrTriggerDataPointType(pointerEntry1, &structure->triggerData[i]);
        }
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload awbZoneConfigType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void awbglobalelementsClass::UnloadawbZoneConfigType(
    awbZoneConfigType* structure)
{
    PARAMETER_DELETE[] structure->Description;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload awbZoneDefineType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void awbglobalelementsClass::UnloadawbZoneDefineType(
    awbZoneDefineType* structure)
{
    UnloadawbZoneConfigType(&structure->zoneConfigData);
    PARAMETER_DELETE[] structure->triggerData;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload awbTriggerDataZoneLevel2Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void awbglobalelementsClass::UnloadawbTriggerDataZoneLevel2Type(
    awbTriggerDataZoneLevel2Type* structure)
{
    PARAMETER_DELETE[] structure->triggerData;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload awbTriggerDataZoneLevel1Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void awbglobalelementsClass::UnloadawbTriggerDataZoneLevel1Type(
    awbTriggerDataZoneLevel1Type* structure)
{
    for (UINT32 i = 0; i < structure->triggerDataCount; i++)
    {
        UnloadawbTriggerDataZoneLevel2Type(&structure->triggerData[i]);
    }
    PARAMETER_DELETE[] structure->triggerData;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload awbZoneMLCType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void awbglobalelementsClass::UnloadawbZoneMLCType(
    awbZoneMLCType* structure)
{
    UnloadawbZoneConfigType(&structure->zoneConfigData);
    for (UINT32 i = 0; i < structure->triggerDataCount; i++)
    {
        UnloadawbTriggerDataZoneLevel1Type(&structure->triggerData[i]);
    }
    PARAMETER_DELETE[] structure->triggerData;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload awbSAConfidenceLevel2Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void awbglobalelementsClass::UnloadawbSAConfidenceLevel2Type(
    awbSAConfidenceLevel2Type* structure)
{
    PARAMETER_DELETE[] structure->triggerData;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload awbSAConfidenceDataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void awbglobalelementsClass::UnloadawbSAConfidenceDataType(
    awbSAConfidenceDataType* structure)
{
    for (UINT32 i = 0; i < structure->triggerDataCount; i++)
    {
        UnloadawbSAConfidenceLevel2Type(&structure->triggerData[i]);
    }
    PARAMETER_DELETE[] structure->triggerData;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload awbSATargetLevel2Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void awbglobalelementsClass::UnloadawbSATargetLevel2Type(
    awbSATargetLevel2Type* structure)
{
    PARAMETER_DELETE[] structure->triggerData;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload awbSATargetDataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void awbglobalelementsClass::UnloadawbSATargetDataType(
    awbSATargetDataType* structure)
{
    for (UINT32 i = 0; i < structure->triggerDataCount; i++)
    {
        UnloadawbSATargetLevel2Type(&structure->triggerData[i]);
    }
    PARAMETER_DELETE[] structure->triggerData;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload awbCbCrLevel2Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void awbglobalelementsClass::UnloadawbCbCrLevel2Type(
    awbCbCrLevel2Type* structure)
{
    PARAMETER_DELETE[] structure->triggerData;
}

AWBGLOBALELEMENTS_NAMESPACE_END
